package main

import (
	"fmt"
	"strings"
)

//用面向过程方式实现家庭收支系统

func main() {
	key := ""
	loop := true

	balance := 10000.0
	money := 0.0
	note := ""
	details := "变动方式\t账户余额\t变动金额\t收入原因\n"
	confirmExit := ""

	//记录收支行为
	flag := false
	for {
		fmt.Println("-----------家庭收支明细-----------")
		fmt.Println("          1.收支明细")
		fmt.Println("          2.登记收入")
		fmt.Println("          3.登记支出")
		fmt.Println("          4.退出软件")
		fmt.Println("请选择(1-4)")
		fmt.Scanln(&key)
		switch key {
		case "1":
			fmt.Println()
			fmt.Println()
			if !flag {
				fmt.Println("当前没有收支明细请来一笔吧...")
				fmt.Println()
				fmt.Println()
				break
			}
			fmt.Println("----------当前收支明细记录----------")
			fmt.Println(details)
			fmt.Println()
			fmt.Println()
		case "2":
			fmt.Println()
			fmt.Println()
			fmt.Println("请输入本次收入金额：")
			fmt.Scanln(&money)
			balance += money
			fmt.Println("请输入本次收入原因：")
			fmt.Scanln(&note)
			details += fmt.Sprintf("收入\t%v\t%v\t%v\n", balance, money, note)
			flag = true
			fmt.Println()
			fmt.Println()
		case "3":
			fmt.Println()
			fmt.Println()
			fmt.Println("请输入本次支出金额：")
			fmt.Scanln(&money)
			if money > balance {
				fmt.Println("支出的金额不足，不能支出")
				break
			}
			balance -= money
			fmt.Println("请输入本次支出原因：")
			fmt.Scanln(&note)
			details += fmt.Sprintf("支出\t%v\t%v\t%v\n", balance, money, note)
			flag = true
			fmt.Println()
			fmt.Println()
		case "4":
			fmt.Println()
			fmt.Println()
			fmt.Println("你确定要退出吗 y/n")
			for {
				fmt.Scanln(&confirmExit)
				//忽略大小写比较
				if strings.EqualFold(confirmExit, "y") || strings.EqualFold(confirmExit, "n") {
					break
				} else {
					fmt.Println("输入有误,请重新输入")
				}
			}
			if strings.EqualFold(confirmExit, "y") {
				loop = false
			} else {
				fmt.Println()
				fmt.Println()
				fmt.Println("正在重新进入主界面...")
			}
		default:
			fmt.Println("请输入正确的选项")
			fmt.Println()
			fmt.Println()
		}
		if !loop {
			break
		}
	}
	fmt.Println("您已退出家庭收支明细系统...")
}
